package com.googlecode.mailnet.info;

import com.googlecode.mailnet.netmodel.Link;

/**
 * Describes link state information.
 */
public interface ILinkInfo extends ILocation {
	
	/**
	 * Returns the size of data to be transmitted over the link.
	 * @return The size of data to be transmitted over the link
	 */
	int getAttemptedToTransferPerStep(); 
	
	/**
	 * Indicates if the link is broken.
	 * @return Returns true if link is broken and false otherwise.
	 */
	boolean isBroken();
	
	/**
	 * Returns the link usage value between from [0.0;1.0].
	 * @return The link usage value
	 */
	double getUsageValue();
	
	/**
	 * Returns the link this information object describes.
	 * @return The link configuration object
	 */
	Link getLink();
}
